import axios from 'axios';
// 设置BaseURL
axios.defaults.baseURL = 'http://www.shop.net/adminapi';

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
    let token = sessionStorage.token;
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    config.headers['Authori-zation'] = `Bearer ${token}`;

  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response.data;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  let { status } = error.response;
	let { message } = error.response.data.inner;
	let { url } = error.config;
	switch (status) {
		case 401:

    ElNotification({
				title: `错误:${status}--${message}`,
				message: 'access_token失效，请重新登录',
        type: 'error',
			});
			let {fullPath}=router.history.current;
			router.replace({path:'/login',query:{redirect:fullPath}});
			break;
		case 403:

    ElNotification({
				title: `错误:${status}`,
				message: `API接口：${url}访问未授权`,
        type: 'error',
			})
			break;
		case 404:
			ElNotification({
				title: `错误:${status}`,
				message: `API接口:${url}地址错误`,
        type: 'error',
			})
			break;
		case 500:
			ElNotification({
				title: `错误:${status}`,
				message: `API接口:${url}请联系后端工程师`,
        type: 'error',
			})
			break;
		default:
			ElNotification({
				title: `错误:${status}`,
				message: `API接口:${url}请查看AJAX发送记录`,
        type: 'error',
			})
			break;
	}
	return Promise.reject(error);
});
